import { isObject } from '@/common/helper/is'

export default {
  data() {
    return {
      prefixCls: Env.GlobAppShortName, // 用作类名前缀

      // #ifdef MP-WEIXIN
      // fix: 微信小程序中 <template></template> 中取不到 Vue.prototype.XXX 定义的变量值
      // $Env: Env,
      // $Platform: this.$Platform,
      // #endif
    }
  },
  // 侦听属性
  watch: {},
  // 计算属性
  computed: {
    // 设置当前页面Route
    $Route() {
      let _$Route = {}
      const page = getCurrentPages().pop()

      if (page?.route) {
        const path = `/${page.route}`
        const pageMap = ROUTES_MAP[path]
        if (isObject(pageMap)) {
          _$Route = {
            ...pageMap,
            ...page.$page,

            // #ifdef MP
            query: page.options || {},
            // #endif

            // #ifndef MP
            query: page.$page.options || {},
            // #endif
          }
        }
      }

      return _$Route
    },

    // 内容底部区域撑起内边距高度
    contPaddingBottom() {
      // bottom：底部安全区域高度，为0则取10；40：底部操作栏高度(按钮高度)；10：底部操作栏与顶部的间距； 10：多预留的高度
      return (this.$Platform.device.safeAreaInsets.bottom || 10) + 40 + 10 + 10
    },
  },
  //
  onPageScroll(e) {
    uni.$emit('onPageScroll', e)
  },
  // 监听页面加载，该钩子被调用时，响应式数据、计算属性、方法、侦听器、props、slots 已设置完成
  onLoad(options) {},
  // 监听页面显示，页面每次出现在屏幕上都触发
  onShow() {
    // 隐藏原生导航栏 使用自定义底部导航
    // #ifdef MP-WEIXIN
    // const path = `${this.$Route.path}`
    // if (path && TABBAR.includes(path)) uni.hideTabBar()
    // #endif
  },
  // 监听页面初次渲染完成，此时组件已挂载完成
  onReady() {},
  // 下拉刷新
  onPullDownRefresh() {},
  // 加载更多
  onReachBottom() {},

  created() {},
  mounted() {},
  destroyed() {},
  methods: {},
}
